package testes;

import agenda.Agenda;
import agenda.Contato;
import agenda.Evento;
import agenda.Skype;
import agenda.Telefone;
import excecoes.HorarioInvalido;
import excecoes.NomeInvalido;
import excecoes.DataInvalida;
import org.junit.*;

public class AgendaTest {

	private Agenda agenda;

	@Before
	public void setUp() throws Exception {
		agenda = new Agenda();
	}

	@Test
	public void testGetAndAddContatos() throws DataInvalida, NomeInvalido,Exception {

		Assert.assertTrue(agenda.getContatos().isEmpty());

		Contato contato1 = new Contato("klvn", "Av. bem ali", "24/12", new Skype("mosquito"));
		agenda.addContato(contato1);
		Assert.assertTrue(agenda.getContatos().contains(contato1));

		Contato contato2 = new Contato("Bzzzz", "R. das comeias", "11/11", new Telefone("33333333333"));
		agenda.addContato(contato2);
		Assert.assertTrue(agenda.getContatos().contains(contato2) || agenda.getContatos().contains(contato2));

	}

	@Test
	public void testGetAndAddEventos() throws DataInvalida, HorarioInvalido {

		Assert.assertTrue(agenda.getEventos().isEmpty());

		Evento evento1 = new Evento("secret","31/01/2000","00:00","24:00","muitooo secretoooooo");
		agenda.addEvento(evento1);
		Assert.assertTrue(agenda.getEventos().contains(evento1));

		Evento evento2 = new Evento("fim do mundo!","21/12/2012","00:00","99:59","cabou-se");
		agenda.addEvento(evento2);
		Assert.assertTrue(agenda.getEventos().contains(evento2) || agenda.getEventos().contains(evento1));

	}

}
